﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;

namespace DeepTime.Controls
{
    public class DateIncrement : INotifyPropertyChanged
    {
        #region INotifyPropertyChanged Implementation

        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged(string PropertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged.Invoke(this, new PropertyChangedEventArgs(PropertyName));
            }
        }

        #endregion INotifyPropertyChanged Implementation

        #region Class Members

        private string _Description;
        private Point _TopLeft;
        private Point _BottomRight;
        private DateTime _Date;

        #endregion Class Members

        #region Properties

        /// <summary>
        /// Description to display
        /// </summary>
        public string Description
        {
            get
            {
                return _Description;
            }
            set
            {
                _Description = value;
                OnPropertyChanged("Description");
            }
        }

        /// <summary>
        /// TopLeft of the item
        /// </summary>
        public Point TopLeft
        {
            get
            {
                return _TopLeft;
            }
            set
            {
                _TopLeft = value;
                OnPropertyChanged("TopLeft");
            }
        }

        /// <summary>
        /// BottomRight of the item 
        /// </summary>
        public Point BottomRight
        {
            get
            {
                return _BottomRight;
            }
            set
            {
                _BottomRight = value;
                OnPropertyChanged("BottomRight");
            }
        }

        /// <summary>
        /// The Date assigned to this increment
        /// </summary>
        public DateTime Date
        {
            get
            {
                return _Date;
            }
            set
            {
                _Date = value;
                OnPropertyChanged("Date");
            }
        }

        #endregion Properties
    }
}
